#include "cGameReceiver.h"

#include <irrlicht.h>

using namespace irr;
using namespace scene;
using namespace core;
using namespace video;

cGameReceiver::cGameReceiver()
{
    //ctor
}

cGameReceiver::~cGameReceiver()
{
    //dtor
}

//!##### Обработка событий движка
bool cGameReceiver::OnEvent(const SEvent& event)
{
    switch (event.EventType)    //перебираем типы события
    {
        case EET_KEY_INPUT_EVENT:   //"клавишные" события
            {
                if (event.KeyInput.PressedDown)
                {
                    isKeyDown[event.KeyInput.Key] = true;
                    isKeyWasDown[event.KeyInput.Key] = false;
                } else if (isKeyDown[event.KeyInput.Key] == true && !event.KeyInput.PressedDown) {
                    isKeyWasDown[event.KeyInput.Key] = true;
                    isKeyDown[event.KeyInput.Key] = false;
                }
                break;
            }
        default:
            break;
    }
    return false;
}

//!##### Настройка системных объектов
void cGameReceiver::setupDevice(IrrlichtDevice* d)
{
    device = d;
    smgr = d->getSceneManager();
}

//!##### Проверка состояния клавиш и обработка их команд
void cGameReceiver::checkKeys()
{
    if (isKeyWasDown[KEY_EXIT]) event_exit();
}

//!##### Событие: выход из приложения
void cGameReceiver::event_exit()
{
    device->getLogger()->log(L"EVENT: Exit\n");
    device->closeDevice();
}
